#pragma once

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int LTDatatype;

typedef struct ListNode
{
	struct ListNode* prev;
	struct ListNode* next;
	LTDatatype x;
}ListNode;

//void ListInit(ListNode** phead);

ListNode* ListInit();
void LTPushBack(ListNode* phead, LTDatatype x);
void LTPushFront(ListNode* phead, LTDatatype x);
void LTprint(ListNode* phead);

void LTPopBack(ListNode* phead);
void LTPopFront(ListNode* phead);
bool LTempty(ListNode* phead);

ListNode* LTFind(ListNode* phead, LTDatatype x);
void LTInsert(ListNode* pose, LTDatatype x);
void LTErase(ListNode* pose);
void LTDestory(ListNode* head);